一、加入Jar包
在工程目录下新建lib文件夹,加入下面的Jar包:
- mybatis-3.4.1.jar
- mysql-connector-java-5.1.37-bin.jar
- log4j.jar
其中,第一个为Mybatis的Jar包,第二个是MySQL的Jar包,第三个是日志的Jar包,当然,为了使用日志,还需要在类路径下加入log4j.xml
。
在工程目录下新建conf源代码文件夹,加入log4j.xml
,到此第一步完成。
二、加入MyBatis的配置文件
在类路径下加入MyBatis的配置文件,该配置文件的作用是从这个配置文件中创建SqlSessionFactory,这里我们同样在conf文件夹下加入mybatis-config.xml
文件,文件内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/mybatis" /> <property name="username" value="root" /> <property name="password" value="1230" /> </dataSource> </environment> </environments> <mappers> <mapper resource="EmployeeMapper.xml" /> </mappers> </configuration>
|
<dataSource>
标签下为数据库的一些配置,包括MySQL的driver、url、username和password。
小技巧:Eclipse下ctrl+shift+F快捷键可以快速格式化代码。
至于<mapper>
标签下的内容我们后面再说。
三、根据数据库的内容创建对应的JavaBean
我这里在数据库里建立了一个Employee表,其有以下4个字段,分别是:
- id
- user_name
- email
- gender
我们在Eclipse中建立对应的JavaBean类,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| package com.glemontree.mybatis.bean; public class Employee { private Integer id; private String lastName; private String email; private String gender; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } @Override public String toString() { return "Employee [id=" + id + ", lastName=" + lastName + ", email=" + email + ", gender=" + gender + "]"; } }
|
四、创建映射文件
在conf目录下创建映射文件,映射文件的内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.glemontree.mybatis.EmployeeMapper"> namespace:名称空间;指定为接口的全类名 id:唯一标识 resultType:返回值类型 #{id}:从传递过来的参数中取出id值 public Employee getEmpById(Integer id); --> <select id="selectEmp" resultType="com.glemontree.mybatis.bean.Employee"> select * from tbl_employee where id = #{id} </select> </mapper>
|
此时我们需要更改第二步中MyBatis配置文件下<mapper>
标签中的内容,将其改为我们刚刚创建的这个文件。
五、创建测试代码
创建Junit单元测试类,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| package com.glemontree.mybatis.test; import static org.junit.Assert.*; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Test; public class MyBatisTest { public SqlSessionFactory getSqlSessionFactory() throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); return sqlSessionFactory; } @Test public void test() throws IOException { SqlSessionFactory sqlSessionFactory = getSqlSessionFactory(); SqlSession openSession = sqlSessionFactory.openSession(); Employee employee = openSession.selectOne("com.glemontree.mybatis.dao.EmployeeMapper.selectEmp", 1); System.out.println(employee); } }
|
其主要流程如下:
- 根据xml配置文件(全局配置文件)创建SqlSessionFactory对象
- 由SqlSessionFactory创建SqlSession对象,能直接执行已经映射的SQL语句
- 使用
selectOne()
方法进行查询,其第一个参数为映射的SQL语句的唯一id标识符,第二个参数为传入的查询参数
六、创建MyBatis工程的步骤
- 根据xml配置文件(全局配置文件)创建SqlSessionFactory对象,xml配置文件中含有数据源的一些信息
- SQL映射文件:配置了每一个SQL,以及SQL的封装规则等
- 将SQL映射文件注册到全局配置文件中
- 写代码
- 根据全局配置文件得到SqlSessionFactory
- 使用SqlSessionFactory获取到SqlSession对象,使用SqlSession来进行增删改查,一个SqlSession就是代表和数据库的一次对话,用完记得关闭
- 使用SQL的唯一标识来告诉MyBatis执行哪个SQL,SQL都是保存在SQL映射文件中的。